import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// 配置组件自动导入插件
// 配置vant组件自动导入插件
import Components from 'unplugin-vue-components/vite'
import { VantResolver } from 'unplugin-vue-components/resolvers'
import legacy from '@vitejs/plugin-legacy'
import { createHtmlPlugin } from 'vite-plugin-html'

//svg插件
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
import path from 'path'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    createHtmlPlugin(),
    // 解析单文件组件的插件
    vue(),
    legacy({
      targets: ['Chrome >= 69'],
      additionalLegacyPolyfills: ['regenerator-runtime/runtime']
    }),
    // 自动导入的插件，解析器可以是 vant element and-vue
    Components({
      dts: false,
      // 原因：Toast Confirm 这类组件的样式还是需要单独引入，样式全局引入了，关闭自动引入
      resolvers: [VantResolver({ importStyle: false })]
    }),
    createSvgIconsPlugin({
      // Specify the icon folder to be cached
      iconDirs: [path.resolve(__dirname, 'src/icons')]
    })
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
  server: {
    host: '0.0.0.0' // 允许所有网卡绑定，局域网设备可以访问
    //open: true, // 启动时自动打开浏览器
    //port: 8081 // 自定义端口
    // 配置代理（如果需要）:
    // proxy: {
    //   '/api': {
    //     target: 'http://your-api-server',
    //     changeOrigin: true,
    //     rewrite: (path) => path.replace(/^\/api/, '')
    //   }
    // }
    // 其他服务器配置
  }
})
